package org.liveboardgames.agricola.access;

import java.util.List;
import java.util.Set;

import org.liveboardgames.agricola.domain.card.ActionCard;
import org.liveboardgames.agricola.domain.card.Card;
import org.liveboardgames.agricola.domain.card.ImprovementCard;
import org.liveboardgames.agricola.model.enums.GameTypeEnum;

public interface ICardDao {

  List<ActionCard> getStartingActionCards(GameTypeEnum gameType, int numberOfPlayers);

  List<ActionCard> getStaticActionCards(GameTypeEnum gameType);

  List<ActionCard> getActionCardsForPeriod(int i);

  Set<ImprovementCard> getAllMajorImprovements();

  Card load(Long cardId);
  
  Set<Card> getBeggingCards(int number);

  void save(Card card);
}
